package mx.com.mcted.beans;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.SQLException;

import mx.com.deckosys.utils.HibernateUtil;

import org.hibernate.Hibernate;


public class Consultorio {

	private Integer id;
	private String nombre;
	private String responsable;
	private String calle;
	private String numExt;
	private String numInt;
	private String colonia;
	private String municipio;
	private String estado;
	private String pais;
	private String paginaWeb;
	private String mail;
	private String tel1;
	private String tel2;
	private String cp;
	private byte[] logo;

	public void setId(Integer idConsultorio) {
		this.id = idConsultorio;
	}

	public Integer getId() {
		return this.id;
	}


	public String getNombre() {
		return nombre;
	}


	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	public String getResponsable() {
		return responsable;
	}


	public void setResponsable(String responsable) {
		this.responsable = responsable;
	}


	public String getCalle() {
		return calle;
	}


	public void setCalle(String calle) {
		this.calle = calle;
	}


	public String getNumExt() {
		return numExt;
	}


	public void setNumExt(String numExt) {
		this.numExt = numExt;
	}


	public String getNumInt() {
		return numInt;
	}


	public void setNumInt(String numInt) {
		this.numInt = numInt;
	}


	public String getColonia() {
		return colonia;
	}


	public void setColonia(String colonia) {
		this.colonia = colonia;
	}


	public String getMunicipio() {
		return municipio;
	}


	public void setMunicipio(String municipio) {
		this.municipio = municipio;
	}


	public String getEstado() {
		return estado;
	}


	public void setEstado(String estado) {
		this.estado = estado;
	}


	public String getPais() {
		return pais;
	}


	public void setPais(String pais) {
		this.pais = pais;
	}


	public String getPaginaWeb() {
		return paginaWeb;
	}


	public void setPaginaWeb(String paginaWeb) {
		this.paginaWeb = paginaWeb;
	}


	public String getMail() {
		return mail;
	}


	public void setMail(String mail) {
		this.mail = mail;
	}


	public String getTel1() {
		return tel1;
	}


	public void setTel1(String tel1) {
		this.tel1 = tel1;
	}


	public String getTel2() {
		return tel2;
	}


	public void setTel2(String tel2) {
		this.tel2 = tel2;
	}


	public String getCp() {
		return cp;
	}


	public void setCp(String cp) {
		this.cp = cp;
	}

	public void setLogo(byte[] logo) {
		this.logo = logo;
	}

	public byte[] getPdf() {
		return logo;
	}
  @SuppressWarnings("unused")
  private void setLogoBlob(Blob imageBlob) {
    this.logo = toByteArray(imageBlob);
  }
  @SuppressWarnings("unused")
  private Blob getLogoBlob(){
	if (this.logo==null) return null;  
    return Hibernate.createBlob(this.logo,HibernateUtil.getSession());
  }
  
  private byte[] toByteArray(Blob fromImageBlob) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
      return toByteArrayImpl(fromImageBlob, baos);
    } catch (Exception e) {
    }
    return null;
  }

  private byte[] toByteArrayImpl(Blob fromImageBlob, 
      ByteArrayOutputStream baos) throws SQLException, IOException {
    byte buf[] = new byte[4000];
    int dataSize;
    InputStream is = fromImageBlob.getBinaryStream(); 

    try {
      while((dataSize = is.read(buf)) != -1) {
        baos.write(buf, 0, dataSize);
      }    
    } finally {
      if(is != null) {
        is.close();
      }
    }
    return baos.toByteArray();
  }
	
  public Consultorio(){
	
  }
	
  public Consultorio(Integer idConsultorio, String nombre, String responsable, String calle, String numExt, String numInt, String colonia, String municipio, String estado, String pais, String paginaWeb, String mailConsultorio, String tel1, String tel2, String cp, byte[] logo){
	this.id= idConsultorio;
	this.nombre= nombre;
	this.responsable= responsable;
	this.calle= calle;
	this.numExt= numExt;
	this.numInt= numInt;
	this.colonia= colonia;
	this.municipio= municipio;
	this.estado= estado;
	this.pais= pais;
	this.paginaWeb= paginaWeb;
	this.mail= mailConsultorio;
	this.tel1= tel1;
	this.tel2= tel2;
	this.cp= cp;
	this.logo= logo;
  }

  public Consultorio(Consultorio consultorio){
	this.id= consultorio.id;
	this.nombre= consultorio.nombre;
	this.responsable= consultorio.responsable;
	this.calle= consultorio.calle;
	this.numExt= consultorio.numExt;
	this.numInt= consultorio.numInt;
	this.colonia= consultorio.colonia;
	this.municipio= consultorio.municipio;
	this.estado= consultorio.estado;
	this.pais= consultorio.pais;
	this.paginaWeb= consultorio.paginaWeb;
	this.mail= consultorio.mail;
	this.tel1= consultorio.tel1;
	this.tel2= consultorio.tel2;
	this.cp= consultorio.cp;
	this.logo= consultorio.logo;
  }

  public String toString(){
	return "Consultorio contiene: idConsultorio:" + this.id + " nombre:" + this.nombre + " responsable:" + this.responsable + " calle:" + this.calle + " numExt:" + this.numExt + " numInt:" + this.numInt + " colonia:" + this.colonia + " municipio:" +  this.municipio + " estado:" + this.estado + " pais:"+ this.pais + " web:"+ this.paginaWeb +" mail:"+ this.mail + " tel1:" + this.tel1 + " tel2:" + this.tel2 + " cp:" + this.cp + "\n Logo:\n" + this.logo;
  }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Consultorio consultorio = new Consultorio(1,"consultorio patito","Dr Cachetes","en esta calle", "noExt","noint", "valle dorado", "san luis potosi","slp","mexico","www.miconsultorio.com","atencion@miconsultorio.com","8241190","8241130","78421","ESTE ES EL LOGO".getBytes());
		System.out.println(consultorio.toString());
 
	}	
	
	
}
